home *** CD-ROM | disk | FTP | other *** search
/ The Interactive Lovers' Guide / The Interactive Lovers' Guide.iso / loversg.mst < prev    next >
Text File  |  1993-11-19  |  6KB  |  229 lines

  1. '**************************************************************************
  2. '*                       MSSetup for Lovers' Guide
  3. '**************************************************************************
  4.  
  5. '$DEFINE DEBUG  ''Define for script development/debugging
  6.  
  7. '$INCLUDE 'setupapi.inc'
  8. '$INCLUDE 'msdetect.inc'
  9.  
  10. ''Dialog ID's
  11. CONST WELCOME       = 100
  12. CONST ASKQUIT       = 200
  13. CONST DESTPATH      = 300
  14. CONST EXITFAILURE   = 400
  15. CONST EXITQUIT          = 600
  16. CONST EXITSUCCESS   = 700
  17. CONST CHECK             = 2500
  18. CONST TOOBIG            = 6300
  19. CONST BADPATH       = 6400
  20.  
  21. ''Bitmap ID
  22. CONST LOGO = 102
  23.  
  24. GLOBAL DEST$        ''Default destination directory.
  25. GLOBAL OPTCUR$      ''Option selection from option dialog.
  26.  
  27. DECLARE SUB Install
  28. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  29.  
  30.  
  31. INIT:
  32.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  33.  
  34.     SetTitle "Lovers' Guide Installer"
  35.  
  36.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  37.     IF szInf$ = "" THEN
  38.     szInf$ = GetSymbolValue("STF_CWDDIR") + "LOVERSG.INF"
  39.     END IF
  40.     ReadInfFile szInf$
  41.  
  42.     OPTCUR$ = "0"
  43.     DEST$ = "C:\QTW\BIN\"
  44.  
  45. '$IFDEF DEBUG
  46.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  47.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  48.     IF IsDriveValid(WinDrive$) = 0 THEN
  49.     i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  50.     GOTO QUIT
  51.     END IF
  52. '$ENDIF ''DEBUG
  53.  
  54.  
  55. WELCOME:
  56.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", 0, "")
  57.     IF sz$ = "CONTINUE" THEN
  58.     UIPop 1
  59.     ELSE
  60.     GOSUB ASKQUIT
  61.     GOTO WELCOME
  62.     END IF
  63.  
  64.  
  65. CHECK:
  66.     SetSymbolValue "RadioDefault", "0"
  67. OPTL1:
  68.     sz$ = UIStartDlg(CUIDLL$, CHECK, "FRadioDlgProc", 0, "")
  69.     OPTCUR$ = GetSymbolValue("ButtonChecked")
  70.  
  71.     IF sz$ = "CONTINUE" THEN
  72.     UIPop(1)
  73.     ELSEIF sz$ = "REACTIVATE" THEN
  74.      GOTO OPTL1
  75.     ELSEIF sz$ = "BACK" THEN
  76.     GOTO WELCOME
  77.     ELSE
  78.     GOSUB ASKQUIT
  79.     GOTO CHECK
  80.     END IF
  81.  
  82.  
  83. IF OPTCUR$ = "0" THEN
  84.     GOTO INSTALLIT
  85. ENDIF
  86.  
  87. GETPATH:
  88.     SetSymbolValue "EditTextIn", DEST$
  89.     SetSymbolValue "EditFocus", "END"
  90. GETPATHL1:
  91.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", 0, "")
  92.     DEST$ = GetSymbolValue("EditTextOut")
  93.  
  94.     IF sz$ = "CONTINUE" THEN
  95.     IF IsDirWritable(DEST$) = 0 THEN
  96.         GOSUB BADPATH
  97.         GOTO GETPATHL1
  98.     END IF
  99.     UIPop 1
  100.     ELSEIF sz$ = "REACTIVATE" THEN
  101.     GOTO GETPATHL1
  102.     ELSEIF sz$ = "BACK" THEN
  103.     UIPop 1
  104.     GOTO CHECK
  105.     ELSE
  106.     GOSUB ASKQUIT
  107.     GOTO GETPATH
  108.     END IF
  109.  
  110. INSTALLIT:
  111.     Install
  112.  
  113.  
  114. QUIT:
  115.     ON ERROR GOTO ERRQUIT
  116.  
  117.     IF ERR = 0 THEN
  118.     dlg% = EXITSUCCESS
  119.     ELSEIF ERR = STFQUIT THEN
  120.     dlg% = EXITQUIT
  121.     ELSE
  122.     dlg% = EXITFAILURE
  123.     END IF
  124. QUITL1:
  125.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  126.     IF sz$ = "REACTIVATE" THEN
  127.     GOTO QUITL1
  128.     END IF
  129.     UIPop 1
  130.  
  131.     END
  132.  
  133. ERRQUIT:
  134.     i% = DoMsgBox("Setup sources were corrupted, call - 071-702-9391!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  135.     END
  136.  
  137.  
  138.  
  139. BADPATH:
  140.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  141.     IF sz$ = "REACTIVATE" THEN
  142.     GOTO BADPATH
  143.     END IF
  144.     UIPop 1
  145.     RETURN
  146.  
  147.  
  148.  
  149. ASKQUIT:
  150.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  151.  
  152.     IF sz$ = "EXIT" THEN
  153.     UIPopAll
  154.     ERROR STFQUIT
  155.     ELSEIF sz$ = "REACTIVATE" THEN
  156.     GOTO ASKQUIT
  157.     ELSE
  158.     UIPop 1
  159.     END IF
  160.     RETURN
  161.  
  162.  
  163.  
  164. '**
  165. '** Purpose:
  166. '**     Builds the copy list and performs all installation operations.
  167. '** Arguments:
  168. '**     none.
  169. '** Returns:
  170. '**     none.
  171. '*************************************************************************
  172. SUB Install STATIC
  173.  
  174.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  175.     WinDir$ = GetWindowsDir ()
  176.     CreateDir DEST$, cmoNone
  177.     
  178.     OpenLogFile MakePath(DEST$, "LOGFILE.OUT"), 0
  179.         WriteToLogFile ""
  180.         WriteToLogFile "  User chose option: '" + OPTCUR$ + "'" 
  181.         
  182.     IF OPTCUR$ = "1" THEN
  183.     
  184.         WriteToLogFile "  User chose as destination directory: '" + DEST$ + "'"
  185.         WriteToLogFile ""
  186.         WriteToLogFile "May have had to create the directory: " + DEST$
  187.         WriteToLogFile ""
  188.     
  189.         AddSectionFilesToCopyList "Files", MakePath(SrcDir$, "qtw"), DEST$
  190.         CopyFilesInCopyList
  191.         
  192.         CopyFile MakePath (SrcDir$, "qtw\qtw.ini"), MakePath(WinDir$, "qtw.ini"), cmoNone, 0
  193.         CopyFile "c:\autoexec.bat", "c:\autoexec.old", cmoNone, 0
  194.         PrependToPath "c:\autoexec.old", "c:\autoexec.bat", DEST$, cmoOverwrite
  195.     ENDIF
  196.         
  197.     CopyFile MakePath (SrcDir$, "loversg.ini"), MakePath(WinDir$, "loversg.ini"), cmoNone, 0
  198.     CreateProgmanGroup "Lovers' Guide", MakePath(WinDir$, "loversg.grp"), cmoOverwrite
  199.     ShowProgmanGroup "Lovers' Guide", 1, cmoNone
  200.     CreateProgmanItem "Lovers' Guide", "Lovers' Guide", MakePath(SrcDir$, "loversg.exe "), MakePath(SrcDir$, "loversg.ico"), cmoOverwrite
  201.  
  202.     CloseLogFile
  203.  
  204. END SUB
  205.  
  206.  
  207.  
  208. '**
  209. '** Purpose:
  210. '**     Appends a file name to the end of a directory path,
  211. '**     inserting a backslash character as needed.
  212. '** Arguments:
  213. '**     szDir$  - full directory path (with optional ending "\")
  214. '**     szFile$ - filename to append to directory
  215. '** Returns:
  216. '**     Resulting fully qualified path name.
  217. '*************************************************************************
  218. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  219.     IF szDir$ = "" THEN
  220.     MakePath = szFile$
  221.     ELSEIF szFile$ = "" THEN
  222.     MakePath = szDir$
  223.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  224.     MakePath = szDir$ + szFile$
  225.     ELSE
  226.     MakePath = szDir$ + "\" + szFile$
  227.     END IF
  228. END FUNCTION
  229.